/*
 * @Author: wangchao
 * @Date: 2024-10-04 15:42:42
 * @LastEditors: wangchao
 * @LastEditTime: 2024-10-08 14:45:40
 * @FilePath: \JD-RTT-Driver\applications\u_app_state.h
 * @Description:
 * Copyright (c) 2024 by Bingshan Guardian, All Rights Reserved.
 */
#ifndef _U_APP_STATE_H_
#define _U_APP_STATE_H_

#include <rtthread.h>
#include <rtdevice.h>
#include "board.h"

/**
 *  APP工作状态模式定义
 */
typedef enum
{
    SYS_STATE_CONST_PWR_CHARGE_500KW,     // ID:0 500kW恒功率充电状态
    SYS_STATE_CONST_PWR_DISCHARGE_500KW,  // ID:1 500kW恒功率放电状态
    SYS_STATE_CONST_VOLT_CHARGE,          // ID:2 恒压充电状态
    SYS_STATE_CONST_VOLT_DISCHARGE,       // ID:3 恒压放电状态
    SYS_STATE_INIT,                       // ID:4 初始状态
    SYS_STATE_INIT_CHARGE,                // ID:5 初始充电状态
    SYS_STATE_ACTIVE_BALANCE,             // ID:6 主动均衡状态
    SYS_STATE_CAPACITY_DECAY,             // ID:7 容量衰减状态
    SYS_STATE_MIXING,                     // ID:8 混液状态
    SYS_STATE_STANDBY,                    // ID:9 待机状态
    SYS_STATE_PWR_REDUCTION,              // ID:10 降功率状态
    SYS_STATE_SHUTDOWN_IN_PROGRESS,       // ID:11 停机状态（过程）
    SYS_STATE_SHUTDOWN_COMPLETE,          // ID:12 停机状态（完成）
    SYS_STATE_EMERGENCY_SHUTDOWN,         // ID:13 紧急停机状态
    SYS_STATE_LONG_TERM_SHUTDOWN,         // ID:14 长期停机状态
    SYS_STATE_SYSTEM_TEST                 // ID:15 系统测试状态
} VAR_APP_WORK_STATE;

//
void set_current_work_state(VAR_APP_WORK_STATE state);
//
VAR_APP_WORK_STATE get_current_work_state(void);
rt_uint16_t get_current_work_state_id(void);
void bms_detect_work_state(void);

#endif